'''
An RPG Modification for Source games using Source Python.

    Copyright (C) 2013 Steven Hartin

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

Created on 6 Jan 2013

@author: Steven Hartin
@file: ../sourcerpg/skills/base/base.py
'''

from sourcerpg.utils.baseclass import BaseClass
from sourcerpg.config import skills_config


class SkillBase(BaseClass):
    def __init__(self, internal_name, display_name):
        """@param str name The name of the skill"""
        self.internal_name = internal_name
        self.display_name = display_name

        self.config = skills_config.get(self.internal_name, {})
        self.max_level = int(self.config.get("max_level", 16))
        self.credit_start_cost = int(self.config.get("credit_start_cost", 5))
        self.credit_inc_cost = int(self.config.get("credit_inc_cost", 5))

    def __str__(self):
        """@return str The name of the skill when cast to a string"""
        return self.display_name

    def __repr__(self):
        """@param str Return the python representation of this object"""
        return "%s(%s)" % (self.__class__.__name__, self.__str__())

    def get_credit_cost(self, level):
        return self.credit_start_cost + self.credit_inc_cost * (level - 1)
